
;; (defclass (Currency [string? value]))
;; (def GBP (Currency "GBP"))
;; (def USD (Currency "USD"))
;; (def EUR (Currency "EUR"))

;; (defclass (Currency))
;; (def GBP (Currency ))
;; (def USD (Currency ))
;; (def EUR (Currency ))


;; #define GBP 1
;; #define USD 2
;; #define EUR 3

;; struct MonetaryAmount {
;;                        float amount;
;;                        int currency;
;;                        }

(defenum Currency GBP USD EUR)

(defclass (MonetaryAmount [real? amount]
                          [Currency? currency]))

(def i-owe-you (MonetaryAmount 10.4 GBP))


